Repository navigation
Windows first install: plain words while WebView2 installs, and never a blank window - #1544
Merged
Merged
Conversation
… a blank window
Installing on a clean Windows Server 2022, the Installing page showed the raw
"Execute: ...MicrosoftEdgeWebview2Setup.exe /silent /install" while Microsoft's
WebView2 Runtime installed. Every ExecWait in the template now says its command
to the details list only, so the plain line before it stays, and the WebView2
lines are in plain words ("Installing a part of Windows that OpenBot's window
needs. This takes a minute.") with the bar moving.
After Finish, nothing was on screen for about ten seconds, then OpenBot's window
stayed blank white for about a minute while WebView2 started for the first time.
The window is now built on the setup screens' ground, which WebView2 also takes
as its default background, and a native "Getting OpenBot ready" covers it from
its first show until the setup page's first heartbeat says it painted. The
installer's last page stays, saying OpenBot is opening, until OpenBot's window
is up.
davidmckayv
requested review from
MikeRyanDev,
dustywusty,
guidovizoso,
mxmzb,
samjulien and
tylerslaton
as code owners
November 13, 2026 02:02
A new child window goes under its siblings; wry then raises its container to the top. The test now does the same, so it checks that the cover is put back on top.
… card On the clean box the bootstrapper download showed NSISdl's own box, "Downloading MicrosoftEdgeWebview2Setup.exe" and "Connecting ...", over the page. It now comes with download_quiet, from the same address, under the plain line with the bar moving. The cover's heading now sits in a card where the setup page puts its own, in the page's colours and sizes, so the page replaces it in place.
Contributor
Author
Live: clean Windows Server 2022, internal build of f127d24Internal build run 43355631763, unsigned; artifact digest Installing page
After Finish (this run was slow, as the reported one was)
An earlier run on the same clean image with a fast WebView2 start: window 0.5 s after Finish, cover for 2.6 s, then the page. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What a person saw
A clean install of 1.0.2 on Windows Server 2022, with no WebView2 Runtime on the machine:
Execute: C:\Users\ADMINI~1\AppData\Local\Temp\MicrosoftEdgeWebview2Setup.exe /silent /install.Why
ExecWaitwritesExecute: <command>to the status line itself, over the line printed before it. Never offer to delete data when installing over OpenBot on Windows, and stop what OpenBot runs on uninstall #1462 fixed this for the old version's uninstall; the WebView2 step (Tauri's template) and the template's otherExecWaits still did it.DefaultBackgroundColor, which is white by default (Microsoft). On the box, WebView2 had just been installed: its processes started within 2 s of the window, but it took most of a minute to write its new profile and load the page (profile files written from 00:34:57 to 00:35:41, Defender watching every WebView2 process as a child of a newopenbot-desktop.exe). Earlier clean boxes painted in 1 to 2 s, so the time varies; the window just had nothing of its own to show meanwhile. Before that, the installer had closed and the app's process took about 10 s to reach its window.What changed
Installer
ExecWaitin the template (WebView2 install, WebView2 update, both old-uninstaller paths) is wrapped inSetDetailsPrint listonly/SetDetailsPrint both(NSIS), as the hook's own uninstall already was, so the plain line stays. The WebView2 waits also move the bar (OPENBOT_PROGRESS_MOVING).NSISdl::download_quietfrom the same address, under the plain line with the bar moving.Tauri Window, titled OpenBot) is visible, for 60 s at most. Its buttons and close are off meanwhile, and it hands on its messages every 100 ms, so it never shows as not responding.App (Windows)
first_paint: from the moment the window first shows, a native child window of OpenBot's own covers the webview with the setup page's first card, drawn where the page puts it, in its colours and sizes (light or dark): "Getting OpenBot ready / This can take a minute.". When the page paints, its own "Getting OpenBot ready" card replaces it in place.build()shows the window and then waits for WebView2 while pumping the thread's messages, so an out-of-context WinEvent hook on that thread puts the cover up there (SetWinEventHook). It follows the window's size and goes when the setup page's first heartbeat says it painted (a setup page that loads but never says so is uncovered after 10 s; any other page uncovers at once).Tests
desktop/scripts/installer-update.test.ts: everyExecWaitin the template and hooks sits betweenlistonlyandboth; the WebView2 download, install and update run under the plain line with the bar moving, the download quietly from Tauri's own address; the last page stays until OpenBot's window is up. Red on main (5 failures, including the unwrappedExecWaits), green here.desktop/scripts/installer-language.test.ts: the WebView2 lines say "a part of Windows that OpenBot's window needs", with no "WebView2", "bootstrapper" or "Error:".first_paint(Windows CI, real windows): a window shown while its thread pumps gets the cover at once; a webview child made afterwards goes under it oncebuild()returns; it follows a resize; it goes after the page's heartbeat and never comes back. Plus a check that its colours, words and card position are the setup page's own (styles.css).Live
Clean box, internal build of this branch: results in a comment below.